package com.liuqm.controller;//package com.liuqm.controller;
//
//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
//import com.baomidou.mybatisplus.core.metadata.IPage;
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
//import com.liuqm.pojo.*;
//import com.liuqm.pojo.vo.CzktProductVo;
//import com.liuqm.service.*;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.security.access.prepost.PostFilter;
//import org.springframework.security.access.prepost.PreAuthorize;
//import org.springframework.security.access.prepost.PreFilter;
//import org.springframework.ui.Model;
//import org.springframework.web.bind.annotation.*;
//
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//import java.util.Set;
//import java.util.stream.Collectors;
//
///**
// * <p>
// * SPU商品信息表 前端控制器
// * </p>
// *
// * @author liuqm
// * @since 2024-09-04
// */
//@RestController
////@CrossOrigin
//@RequestMapping("/product/spu")
//public class CzktProductController {
//
//
//    @Autowired
//    ICzktProductService czktProductService;
//
//
//    @Autowired
//    ICzktProductImageService czktProductImageService;
//
//
//    @Autowired
//    ICzktProductSkuService skuService;
//
//
//    @Autowired
//    ICzktProductAttrService czktProductAttrService;
//
//    @Autowired
//    ICzktProductAttrvalService czktProductAttrvalService;
//
//    @RequestMapping("/list")
////    @PreAuthorize("hasAnyAuthority('product:spu:list')")
////    @PostAuthorize("returnObject.skuId==1")
////    @PostFilter("filterObject.stockNum>0")
////    @IsAdmin
//    public Object getPageList(@RequestParam(defaultValue = "1") Integer pageIndex, @RequestParam(defaultValue = "2") Integer pageSize, CzktProduct czktProduct, Model model) {
//        Page<CzktProductVo> page = new Page<>();
//        page.setCurrent(pageIndex);
//        page.setSize(pageSize);
//        IPage<CzktProductVo> resultPage = czktProductService.getPageList(page);
//
//
//        Set<Integer> skuIds = resultPage.getRecords().stream().map(item -> {
//            return item.getSkuId();
//        }).collect(Collectors.toSet());
//
//        QueryWrapper<CzktProductImage> queryWrapper = new QueryWrapper<>();
//        queryWrapper.lambda().in(CzktProductImage::getSkuId, skuIds).eq(CzktProductImage::getImageSort, 1);
//        List<CzktProductImage> productImageList = czktProductImageService.list(queryWrapper);
//        resultPage.getRecords().stream().map(item -> {
//            item.setImages(productImageList.stream().filter(image -> {
//                return item.getSkuId() == image.getSkuId();
//            }).collect(Collectors.toList()));
//            return item;
//        }).collect(Collectors.toList());
//
//        return resultPage.getRecords();
//    }
//
//
//
//    /**
//     * 批量添加商品
//     *
//     * @param czktProduct
//     * @return
//     */
//    @RequestMapping("/bathAdd")
//    @PreFilter(" filterObject.productName!=null&&filterObject.productName.length()>0")
//    public Object bathAdd(@RequestBody List<CzktProduct> czktProduct) {
//
//        return czktProduct;
//    }
//
//    /**
//     * 获取商品信息
//     *
//     * @param skuId
//     * @return
//     */
//    @RequestMapping("/detail")
////    @PreAuthorize("hasRole('guest')")
//    public Object getDetail(Integer skuId) {
//        return czktProductService.selectDeatilById(skuId);
//    }
//
//    /**
//     * 获取商品图片
//     *
//     * @param skuId
//     * @return
//     */
//    @RequestMapping("/getImages")
//    public Object getImages(Integer skuId) {
//        QueryWrapper<CzktProductImage> queryWrapper = new QueryWrapper<>();
//        queryWrapper.lambda().eq(CzktProductImage::getSkuId, skuId);
//        List<CzktProductImage> productImageList = czktProductImageService.list(queryWrapper);
//        return productImageList;
//
//
//    }
//
//
//    /**
//     * 获取商品规格属性
//     *
//     * @param spuId
//     * @return
//     */
//    @RequestMapping("/getAttr")
//    public Object getAttr(Integer spuId) {
//        Map<String, Object> resultMap = new HashMap<>();
//        QueryWrapper<CzktProductAttr> queryWrapper = new QueryWrapper<>();
//        queryWrapper.lambda().eq(CzktProductAttr::getSpuId, spuId);
//
//        List<CzktProductAttr> attrList = czktProductAttrService.list(queryWrapper);
//        resultMap.put("attrs", attrList);
//
//        Set<Integer> attrIds = attrList.stream().map(item -> {
//            return item.getAttrId();
//        }).collect(Collectors.toSet());
//
//
//        QueryWrapper<CzktProductAttrval> queryWrapper2 = new QueryWrapper<>();
//        queryWrapper2.lambda().in(CzktProductAttrval::getAttrId, attrIds);
//        resultMap.put("attrVals", czktProductAttrvalService.list(queryWrapper2));
//        return resultMap;
//    }
//
//
//    /**
//     * 根据Sku属性查询SKU信息
//     *
//     * @param skuAttr
//     * @return
//     */
//    @RequestMapping("/getSku")
//    public Object getAttr(String skuAttr, Integer spuId) {
//        QueryWrapper<CzktProductSku> queryWrapper = new QueryWrapper<>();
//        queryWrapper.lambda().eq(CzktProductSku::getSkuAttr, skuAttr);
//        queryWrapper.lambda().eq(CzktProductSku::getSpuId, spuId);
//
//        CzktProductSku productSku = skuService.getOne(queryWrapper);
//
//        return productSku;
//    }
//
//}
